Placement of resource-consuming clients, such as virtual machines (VMs), on the right supporting devices in a computer network system is an important factor in efficiently utilizing physical resources in the computer network system. An effective client placement strategy must meet the requirements of the clients and optimize several, sometimes conflicting, goals, while taking into consideration the complexities of the computer network system.
With respect to VMs, the initial placement of new VMs on hosting devices and storage devices is particularly challenging because of various parameters involved. The hosting and storage devices have multiple attributes that are pertinent to placement decisions. A hosting device has attributes, such as the amount of available CPU, memory and network bandwidth, which may be important parameters to consider for VM placement. A storage device has attributes, such as free space, current latency and available input/output per second (IOPS), which may also be important parameters to consider for VM placement. These different attributes of the hosting devices and storage devices make efficient placement decisions for VMs difficult.